Data storage systems are widely used in computer system whether locally or distributed. The demand for an ever increasing amount of storage is well known as well as the need to enable security, reliability and dependability of such systems. Certain of the factors that enable solving one problem cause greater problems in other areas important to the users of data storage. For example, in multi-tiered storage systems adding tiers poses potential problems when data is shared among objects residing in different tiers. On the other hand, de-duplication (dedupe) and writable snapshots are related and allow multiple instances of writable objects to share blocks of data of extents of data.
A plurality of related art solutions address issues relating to dedupe and storage tiers. However, there are remaining challenges to overcome that have to do with overall system operability, scalability, and dependability. It is especially important that while avoiding unnecessary duplication, it remains possible to address the ability to return to a desired state of the system to enable progress from a desired state of the storage system. However, it is also essential not to impact other users of the storage and maintain the system integrity.
Therefore, in view of the limitations of the prior art it would be advantageous to provide a system and methods thereto that overcome some of the limitations discussed above.